package cn.wp.ewallet.wmps.dao;

import cn.wp.common.core.model.WpPage;
import cn.wp.ewallet.wmps.model.dto.FinaParmDto;
import cn.wp.ewallet.wmps.model.entity.*;

import java.math.BigDecimal;
import java.util.List;

/**
 * Created by yangjin on 2020/1/7 12:36
 */
public interface FinaProdInfoDao {
    /**
     * 查询所有理财产品
     * 理财产品状态 1000-上架   1100-下架   1200-待上架  管理员可查询所有产品  钱包用户可查询上架的产品
     * @return
     */
    WpPage<FinaProdInfoDoo> selectAllFinaProdInfoList(String finaProdName, WpPage page);

    /**
     * 查询上架理财产品
     * 理财产品状态 1000-上架   1100-下架   1200-待上架  管理员可查询所有产品  钱包用户可查询上架的产品
     * @param page
     * @return
     */
    WpPage<FinaProdInfoDoo> selectUpperFindProdInfoList(WpPage page);

    int insertFinaProdInfo(FinaProdInfoDo finaProdInfoDo);

    FinaProdInfoDo selectFinaProdInfoById(String finaProdId);

    /**
     * 上架理财产品
     * @param finaProdId
     * @return
     */
    int updateFindProdInfoById(String finaProdId);

    /**
     * 下架理财产品
     * @param finaProdId
     * @return
     */
    int updateFindProdInfoById2(String finaProdId);

    /**
     * 查看持有的定期理财产品
     * @param accountId
     * @return
     */

    List<PurchasedProdOrderRelDoo> selectFixfinaProdInfo(String accountId, String status1, String status2);

    /**
     * 查看返回金额
     * @param accountId
     * @return
     */
    BigDecimal selectSumAlreadyReturnYeld(String accountId,String returnStatus);

    /**
     * 查看定期够买总金额
     * @param accountId
     * @return
     */
    BigDecimal selectSumPurchasedYeld(String accountId);

    /**
     * 通过产品类型查看 理财的信息
     * @param proType
     * @return
     */
    List<FinaProdInfoDo> selectFinaProdInfoByProcType(String proType);

    /**
     * 更新理财产品
     * @param finaProdInfoDo
     */

    void updateFindProdInfo(FinaProdInfoDo finaProdInfoDo);

    /**
     * 查询天天盈配置参数
     * @return
     */
    FinaProdInfoDo selectTtyParams();

    /**
     * 通过产品id 查询 购买该产品的人数、和购买总金额
     * @param FinaProdId
     * @return
     */

    WpPage<FinaProdCountDoo> getFinaProdCountDoos(String FinaProdId,WpPage wpPage);
/**
     * 根据条件或者查询所有的理财列表
     * @param finaParmDto
     * @param wpPage
     * @return
     */

    WpPage<FinaProdAddressDoo> selectFinaProdInfoListByParam(FinaParmDto finaParmDto, WpPage wpPage);


    /**
     * 查询所有的定期理财产品 信息
     * @return
     */
    List<FinaProdCountDoo> getFinaProdCountDooByLicai(String finaProdIdTTy);

}
